#ifndef _COMMON_H_
#define _COMMON_H_

#include <sqlite3.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<signal.h>
#include<unistd.h>
#include<errno.h>
#include<time.h>
#include<pthread.h>
#include <sqlite3.h>
#include <netinet/in.h>
#include<arpa/inet.h>
#include<sys/stat.h>
#include <sys/select.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<sys/wait.h>
#include <sys/time.h>


#define PATH_DATA "./staff_management.db" 
#define N 32
#define M 128

/*--------------------------------*/
#define A 0x1
#define B 0x2
#define C 0x3
#define D 0x5
#define E 0x6
#define F 0x7
#define G 0x8
#define H 0x9
#define I 0x10
/*--------------------------------*/
typedef struct{
	int id;//编号
	int type;//消息类型
	char name[M];//用户名
	char pwd[M];//密码
	char sex[M];//性别
	char age[M];//年龄
	char salary[M];//工资
	char ret[M]; //存储信息
}MSG;
#define LEN_SMG sizeof(MSG)
/**************                 查询最大id函数             ******************/

void max_find(int clientfd,MSG *msg,sqlite3 *db);

/**************                 服务器中用到的函数             ******************/
void adm_lg(int clientfd,MSG *msg,sqlite3 *db);//服务器管理员登录
void adm_add(int clientfd,MSG *msg,sqlite3 *db);//服务器管理员增加用户
void adm_del(int clientfd,MSG *msg,sqlite3 *db);//服务器管理员删除用户
void adm_amend(int clientfd,MSG *msg,sqlite3 *db);//服务器管理员修改用户
void adm_fd(int clientfd,MSG *msg,sqlite3 *db);//服务器管理员查询函数


void user_lg(int clientfd,MSG *msg,sqlite3 *db);//服务器普通用户登录
void amend_pswd(int clientfd,MSG *msg,sqlite3 *db);//服务器普通用户修改密码
void user_fd(int clientfd,MSG *msg,sqlite3 *db);//服务器普通用户查询函数

/**************                 客户端中用到的函数             ******************/

int adm_login(int sfd,MSG *msg);//客户端管理员登录函数
void add_user(int sfd,MSG *msg);//客户端管理员注册函数
void del_user(int sfd,MSG *msg);//客户端管理员删除用户函数
void amend_user(int sfd,MSG *msg);//客户端管理员修改用户函数
void adm_find(int sfd,MSG *msg);//客户端管理员查询函数


int user_login(int sfd,MSG *msg);//客户端普通用户登录函数
void amend_pwd(int sfd,MSG *msg);//客户端普通用户修改密码函数
void user_find(int sfd,MSG *msg);//客户端普通用户查询函数



#endif
